import request from '../utils/request'

/**
 * 开始计时
 * @param {number} taskId 任务ID
 */
export function startTimer(taskId) {
  return request({
    url: '/timer/start',
    method: 'post',
    data: { taskId }
  })
}

/**
 * 暂停计时
 * @param {number} recordId 记录ID
 */
export function pauseTimer(recordId) {
  return request({
    url: `/timer/${recordId}/pause`,
    method: 'post'
  })
}

/**
 * 继续计时
 * @param {number} recordId 记录ID
 */
export function resumeTimer(recordId) {
  return request({
    url: `/timer/${recordId}/resume`,
    method: 'post'
  })
}

/**
 * 停止计时
 * @param {number} recordId 记录ID
 */
export function stopTimer(recordId) {
  return request({
    url: `/timer/${recordId}/stop`,
    method: 'post'
  })
}

/**
 * 获取当前运行的计时器
 */
export function getCurrentTimer() {
  return request({
    url: '/timer/current',
    method: 'get'
  })
}

/**
 * 获取计时记录列表
 * @param {object} params 查询参数
 * @param {number} params.taskId 任务ID（可选）
 * @param {string} params.startDate 开始日期（可选）
 * @param {string} params.endDate 结束日期（可选）
 */
export function getTimeRecords(params) {
  return request({
    url: '/timer/records',
    method: 'get',
    params
  })
}

/**
 * 删除计时记录
 * @param {number} recordId 记录ID
 */
export function deleteTimeRecord(recordId) {
  return request({
    url: `/timer/records/${recordId}`,
    method: 'delete'
  })
}

/**
 * 获取统计信息
 * @param {string} period 统计周期：today, week, month
 */
export function getTimerStatistics(period = 'week') {
  return request({
    url: '/timer/statistics',
    method: 'get',
    params: { period }
  })
}

/**
 * 获取汇总统计数据
 * @param {object} params 查询参数
 * @param {string} params.period 统计周期：today, week, month, custom
 * @param {string} params.startDate 开始日期（可选）
 * @param {string} params.endDate 结束日期（可选）
 */
export function getStatisticsSummary(params) {
  return request({
    url: '/timer/statistics/summary',
    method: 'get',
    params
  })
}

/**
 * 获取分类统计数据
 * @param {object} params 查询参数
 * @param {string} params.period 统计周期：today, week, month, custom
 * @param {string} params.startDate 开始日期（可选）
 * @param {string} params.endDate 结束日期（可选）
 */
export function getCategoryStatistics(params) {
  return request({
    url: '/timer/statistics/category',
    method: 'get',
    params
  })
}

/**
 * 获取每日趋势数据
 * @param {object} params 查询参数
 * @param {string} params.period 统计周期：today, week, month, custom
 * @param {string} params.startDate 开始日期（可选）
 * @param {string} params.endDate 结束日期（可选）
 */
export function getDailyTrendStatistics(params) {
  return request({
    url: '/timer/statistics/daily',
    method: 'get',
    params
  })
}

/**
 * 导出统计数据
 * @param {object} params 查询参数
 * @param {string} params.period 统计周期：today, week, month, custom
 * @param {string} params.startDate 开始日期（可选）
 * @param {string} params.endDate 结束日期（可选）
 * @param {string} params.format 导出格式：csv
 */
export function exportStatistics(params) {
  const queryString = new URLSearchParams(params).toString()
  const token = localStorage.getItem('token')
  window.open(`/api/timer/statistics/export?${queryString}&token=${token}`, '_blank')
}
